package com.ruoyi.system.service.impl;

import java.util.List;

import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.DeviceType;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.PaWxUserMapper;
import com.ruoyi.system.domain.PaWxUser;
import com.ruoyi.system.service.IPaWxUserService;

/**
 * 客户（小程序）Service业务层处理
 *
 * @author ruoyi
 * @date 2024-07-11
 */
@Service
public class PaWxUserServiceImpl implements IPaWxUserService {
    @Autowired
    private PaWxUserMapper paWxUserMapper;

    /**
     * 查询客户（小程序）
     *
     * @param wxUserId 客户（小程序）主键
     * @return 客户（小程序）
     */
    @Override
    public PaWxUser selectPaWxUserByWxUserId(Long wxUserId) {
        return paWxUserMapper.selectPaWxUserByWxUserId(wxUserId);
    }

    /**
     * 查询客户（小程序）列表
     *
     * @param paWxUser 客户（小程序）
     * @return 客户（小程序）
     */
    @Override
    public List<PaWxUser> selectPaWxUserList(PaWxUser paWxUser) {
        return paWxUserMapper.selectPaWxUserList(paWxUser);
    }

    /**
     * 新增客户（小程序）
     *
     * @param paWxUser 客户（小程序）
     * @return 结果
     */
    @Override
    public int insertPaWxUser(PaWxUser paWxUser) {
        paWxUser.setCreateTime(DateUtils.getNowDate());
        return paWxUserMapper.insertPaWxUser(paWxUser);
    }

    /**
     * 修改客户（小程序）
     *
     * @param paWxUser 客户（小程序）
     * @return 结果
     */
    @Override
    public int updatePaWxUser(PaWxUser paWxUser) {
        paWxUser.setUpdateTime(DateUtils.getNowDate());
        return paWxUserMapper.updatePaWxUser(paWxUser);
    }

    /**
     * 批量删除客户（小程序）
     *
     * @param wxUserIds 需要删除的客户（小程序）主键
     * @return 结果
     */
    @Override
    public int deletePaWxUserByWxUserIds(Long[] wxUserIds) {
        return paWxUserMapper.deletePaWxUserByWxUserIds(wxUserIds);
    }

    /**
     * 删除客户（小程序）信息
     *
     * @param wxUserId 客户（小程序）主键
     * @return 结果
     */
    @Override
    public int deletePaWxUserByWxUserId(Long wxUserId) {
        return paWxUserMapper.deletePaWxUserByWxUserId(wxUserId);
    }

    @Override
    public PaWxUser selectpaWxUserOpenID(String openid) {
        return paWxUserMapper.selectpaWxUserOpenID(openid);
    }

    @Override
    public PaWxUser selectMpUserByWxUserId(String miniAppUserId) {
        PaWxUser paraUser =  new PaWxUser();
        paraUser.setWxUserId(Long.valueOf(miniAppUserId));
        paraUser.setUserType(DeviceType.XCX.getDevice());
        PaWxUser paWxMinAppUser = paWxUserMapper.selectPaWxUserByUser(paraUser);
        PaWxUser mpUser =  new PaWxUser();
        mpUser.setUserType(DeviceType.MP.getDevice());
        mpUser.setUnionid(paWxMinAppUser.getUnionid());
        //查询公众号用户
        PaWxUser wxMpUser = paWxUserMapper.selectPaWxUserByUser(mpUser);
        return wxMpUser;
    }


}
